package com.zryc.shop.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 商品信息表
 * </p>
 *
 * @author xujiajun
 * @since 2022-10-17
 */
@TableName("product_info")
@ApiModel(value = "ProductInfo对象", description = "商品信息表")
public class ProductInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("商品ID")
    @TableId(value = "product_id", type = IdType.AUTO)
    private Integer productId;

    @ApiModelProperty("商品编码")
    private String productCore;

    @ApiModelProperty("商品名称")
    private String productName;

    @ApiModelProperty("国条码")
    private String barCode;

    @ApiModelProperty("品牌表的ID")
    private Integer brandId;

    @TableField(exist = false)
    private Short productCategoryId;

    public Short getProductCategoryId() {
        return productCategoryId;
    }

    public void setProductCategoryId(Short productCategoryId) {
        this.productCategoryId = productCategoryId;
    }

    @ApiModelProperty("一级分类ID")
    private Short oneCategoryId;

    @ApiModelProperty("二级分类ID")
    private Short twoCategoryId;

    @ApiModelProperty("三级分类ID")
    private Short threeCategoryId;

    @ApiModelProperty("商品的供应商ID")
    private Integer supplierId;

    @ApiModelProperty("商品销售价格")
    private BigDecimal price;

    @ApiModelProperty("商品加权平均成本")
    private BigDecimal averageCost;

    @ApiModelProperty("上下架状态：0下架1上架")
    private Byte publishStatus;

    @ApiModelProperty("审核状态：0未审核，1已审核")
    private Byte auditStatus;

    @ApiModelProperty("商品重量")
    private Double weight;

    @ApiModelProperty("商品长度")
    private Double length;

    @ApiModelProperty("商品高度")
    private Double height;

    @ApiModelProperty("商品宽度")
    private Double width;

    private String colorType;

    @ApiModelProperty("生产日期")
    private LocalDateTime productionDate;

    @ApiModelProperty("商品有效期")
    private Integer shelfLife;

    @ApiModelProperty("商品描述")
    private String descript;

    @ApiModelProperty("商品录入时间")
    private LocalDateTime indate;

    @ApiModelProperty("删除状态，默认为0，1为删除")
    private Integer deleteStatus;

    public Integer getDeleteStatus() {
        return deleteStatus;
    }

    public void setDeleteStatus(Integer deleteStatus) {
        this.deleteStatus = deleteStatus;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public String getProductCore() {
        return productCore;
    }

    public void setProductCore(String productCore) {
        this.productCore = productCore;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getBarCode() {
        return barCode;
    }

    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    public Integer getBrandId() {
        return brandId;
    }

    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    public Short getOneCategoryId() {
        return oneCategoryId;
    }

    public void setOneCategoryId(Short oneCategoryId) {
        this.oneCategoryId = oneCategoryId;
    }

    public Short getTwoCategoryId() {
        return twoCategoryId;
    }

    public void setTwoCategoryId(Short twoCategoryId) {
        this.twoCategoryId = twoCategoryId;
    }

    public Short getThreeCategoryId() {
        return threeCategoryId;
    }

    public void setThreeCategoryId(Short threeCategoryId) {
        this.threeCategoryId = threeCategoryId;
    }

    public Integer getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Integer supplierId) {
        this.supplierId = supplierId;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getAverageCost() {
        return averageCost;
    }

    public void setAverageCost(BigDecimal averageCost) {
        this.averageCost = averageCost;
    }

    public Byte getPublishStatus() {
        return publishStatus;
    }

    public void setPublishStatus(Byte publishStatus) {
        this.publishStatus = publishStatus;
    }

    public Byte getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(Byte auditStatus) {
        this.auditStatus = auditStatus;
    }

    public Double getWeight() {
        return weight;
    }

    public void setWeight(Double weight) {
        this.weight = weight;
    }

    public Double getLength() {
        return length;
    }

    public void setLength(Double length) {
        this.length = length;
    }

    public Double getHeight() {
        return height;
    }

    public void setHeight(Double height) {
        this.height = height;
    }

    public Double getWidth() {
        return width;
    }

    public void setWidth(Double width) {
        this.width = width;
    }

    public String getColorType() {
        return colorType;
    }

    public void setColorType(String colorType) {
        this.colorType = colorType;
    }

    public LocalDateTime getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(LocalDateTime productionDate) {
        this.productionDate = productionDate;
    }

    public Integer getShelfLife() {
        return shelfLife;
    }

    public void setShelfLife(Integer shelfLife) {
        this.shelfLife = shelfLife;
    }

    public String getDescript() {
        return descript;
    }

    public void setDescript(String descript) {
        this.descript = descript;
    }

    public LocalDateTime getIndate() {
        return indate;
    }

    public void setIndate(LocalDateTime indate) {
        this.indate = indate;
    }

    @Override
    public String toString() {
        return "ProductInfo{" +
            "productId = " + productId +
            ", productCore = " + productCore +
            ", productName = " + productName +
            ", barCode = " + barCode +
            ", brandId = " + brandId +
            ", oneCategoryId = " + oneCategoryId +
            ", twoCategoryId = " + twoCategoryId +
            ", threeCategoryId = " + threeCategoryId +
            ", supplierId = " + supplierId +
            ", price = " + price +
            ", averageCost = " + averageCost +
            ", publishStatus = " + publishStatus +
            ", auditStatus = " + auditStatus +
            ", weight = " + weight +
            ", length = " + length +
            ", height = " + height +
            ", width = " + width +
            ", colorType = " + colorType +
            ", productionDate = " + productionDate +
            ", shelfLife = " + shelfLife +
            ", descript = " + descript +
            ", indate = " + indate +
        "}";
    }
}
